# 局部变量与全局变量

# 局部变量，就是在函数内部定义的变量;局部变量只作用于当前函数
# 函数内部的变量名如果第一次出现，且出现在‘=’前面，即被视为该函数定义了一个局部变量，
# 不管全局域中有没有用到该变量名，函数中使用的将是局部变量。
# 局部变量的作用，是为了临时保存数据，需要在函数中定义变量来进行存储。
# 不同的函数，可以定义相同名字的局部变量，但是每个函数内部不会产生影响;

# 全局变量：如果一个变量可以在函数内部调用，也可以在函数外部调用，那么这个变量就称之为全局变量
# 全局变量能在函数内部访问，也可以在外部访问，但函数内部不能修改全局变量。

# 全局变量与局部变量重复,局部变量不会影响全局变量，函数使用局部变量。
# 如果一定要在函数内部修改全局变量需要用global声明

b="全局变量"

def func1():
    a="局部变量"   #声明了一个局部变量a
    print(a)   #局部变量在函数内部可以任意访问
    # 局部变量与全局变量名字相同，函数内部会调用局部变量。对于相同名字的局部变量重新赋值，不会影响全局变量的结果
    b="函数内部的局部变量b"
    print("函数内部调用变量b：{}".format(b))
    pass
func1()
# print(a)    局部变量在函数外不能随意访问
print("函数外部调用变量b：{}".format(b))

def func2():
    a="函数2中的变量a"
    print(a)
    print(b)
    pass
print("============================================")
func1()
func2()

print("===========================================")
def func3():
    global b
    b="func3对b变量赋值"
    print("函数内部调用变量b：{}".format(b))
    pass
func3()
print("函数外部调用变量b：{}".format(b))